1. Field of the Invention
The present invention generally relates to a microprocessor and method therefor, and more particularly to an instruction set with thermal opcode for a high-performance microprocessor and a method therefor.
2. Description of the Related Art
The current generation of 64-bit high-performance microprocessor such as the IBM Power4® have 174 million transistors interconnected with seven layers of copper metallurgy. It is fabricated in 0.18-μm complementary metal oxide semiconductor (CMOS) silicon-on-insulator (SOI), operates around 1.3 GHz and dissipates 140 W in a worst case.
Similarly to other microprocessors, not all parts of the die generate the same amount of heat. Faster or more frequently used circuits (e.g., floating point units (FPUs) and the like, etc.) run at higher temperatures than the rest of the chip, thereby forming “hot spots” on the chip. Since chip reliability is an exponential function of temperature, it is critical to guarantee that no part of the chip exceeds the rated maximum junction temperature. Thus, there is a need to accurately measure temperatures at many locations of a chip.
One way to measure the temperature of the microprocessor is to use a plurality of diodes as temperature sensors. These diodes may be external or internal to the chip.
External temperature diodes are fabricated with semiconductor processes optimized for analog circuits and tend to have better resolution than internal diodes. The current state of the art is measurement resolution to within +/−1 deg C. Internal diodes have to compromise with digital circuits and have much worse specifications.
For example, the Motorola PowerPC® has a temperature sensing diode with +/−4 degree C. resolution (e.g., see “Thermal Management System for High Performance PowerPC Microprocessors” by Hector Sanchez et al, IEEE 1063-6390/97, 1997).
It is well known that the forward voltage drop across a diode, Vd, is linearly proportional to the temperature, given by the following equation:Vd=(N*k*T/q)*ln(If/Is)where N=non-linear factor, k=Boltzman's constant, T=absolute temperature, q=electron charge, If=forward current, Is=saturated current. N and Is are process—and device-dependent. As a result, each diode typically must be calibrated before use.
There are several ways to bypass the calibration. One way is to make one diode much larger than the other(s) (e.g., 32×) and then look at the ratio of the two Vds, as suggested by U.S. Pat. No. 5,829,879, incorporated herein by reference.
Another way is to vary the forward current, If, and also look at the ratio of the two voltages to determine the nonlinear factor. Both ways have substantial penalty: a much larger area (case 1) or multiple current sources (case 2).
Temperature sensing diodes give out about 2 mV/deg C., require stable current source(s), low-noise amplifiers and possibly high-resolution analog-to digital conversion (ADC) for proper operation. It is challenging to integrate all of these analog components with noisy, high-speed digital circuits to measure temperatures accurately at many different locations.
Another practical consideration is that many times, one cannot put the diode sensor directly on/at the “hot-spot” because of space constraints. Indeed, the diode sensor may be positioned at a location where it is many hundreds of transistors away (e.g., on the order of millimeters) from the device of interest. Thus, instead of measuring the temperature of the device of interest, the diode sensor may be erroneously sensing the neighboring device. So, even with the best sensor, some form of spatial extrapolation is still needed to determine the true hot-spot temperature.
Further, to minimize the noise of the diode sensors etc., a low pass filter (LPF) may be employed. However, such a LPF decreases the bandwidth to increase the response time of the sensors, thereby resulting in a lag time on the measurement. Thus, when the temperature rises, such a rise is not necessarily sensed immediately.